<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>ES6类定义组件</title>
  </head>
  <body>
    <div id="test"></div>
    <!-- 引入react核心库  优先 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom用于支持react操作DOM，依赖react核心库 -->
    <script
      type="text/javascript"
      src="../js/react-dom.development.js"
    ></script>
    <!-- 引入babel，用于将jsx转换为js -->
    <script type="text/javascript" src="../js//babel.min.js"></script>
    <script type="text/babel">
      //类的名字就是组件名 必须继承类才能写组件 继承的类是定义好的 React.Component

      class MyComponent extends React.Component {
        // render必须写!!!!!!
        // render是放在哪里的？—— MyComponent的原型对象上，供实例使用

        render() {
          // render中的this是谁？—— MyComponent的实例对象
          console.log("render中的this:", this);
          return <h2>我是用类定义的组件</h2>;
        }
      }
      ReactDOM.render(<MyComponent />, document.getElementById("test"));
      //执行了ReactDOM.render(<MyComponent />, document.getElementById("test"));之后发生了什么？
      //1.React解析组件标签，找到了MyComponent组件。
      //2.发现组件是使用类定义的，随后new出来该类的实例，并通过该实例调用原型上的render方法。
      //3.将render返回的虚拟DOM转为真实DOM，随后呈现在页面上。
    </script>
  </body>
</html>
